
function addScript(url){
	document.write("<script language=javascript src="+url+"></script>");
}
addScript('./Observer.js')
function observe(value){
    // console.log('/////')
    // console.log(value)
    //console.log(value.__ob__)
    // console.log('/////')
    //传进来的value是 defineReactive传进来的那个闭包的value
    if(typeof value !='object'){
         return
    }
    //定义ob  __ob__ 实际就是存贮Observer类的实例的 __前缀和__后缀就是不希望和常见的属性重名
    //ob里面有 dep属性
    if(typeof value.__ob__ !=='undefined'){
          ob=value.__ob__
    }else{
          ob=new Observer(value)
    }
    return ob
}

/*
为啥是多层进来的
  {"a":{"m":{"n":5}}}bbbbbbbbbbbbb
  {"m":{"n":5}}bbbbbbbbbbbbb
  {"n":5}bbbbbbbbbbbbb
  5bbbbbbbbbbbbb
*/ 

/*
  observe 引发 Observer   Observer 引发 defineReactive   defineReactive 引发  observe
  来回的引 形成递归
*/